前面介紹了 for
迴圈, for
迴圈也可以搭配 Command Substitution
用 ls
把目前的檔案列表丟進去 for
的清單。不過這個還是有個問題:
「當檔名有空白的時候」
空白就已經很麻煩,更不用說有時候還會遇到「有子目錄」的狀況,像是 Mac 很喜歡建立 .DS_Store
檔案,可是我超討厭隨身碟或是網路磁碟機上面有 .DS_Store
檔案,這時候怎麼辦呢?
首先最開始要找出這些檔案, find
搜尋檔名的指令是這樣:
find -name ".DS_Store"
接著 find
指令就會把所有搜尋到的 .DS_Store
輸出到 stdout ,接下來呢,再用 for file in ``cat``
嗎?雖然可以不過空白問題還是很難纏,其實是可以這樣下指令的:
find -name ".DS_Store" -exec rm "{}" \;
裡面的 {}
會被 find 展成搜尋結果,後面的 ;
為什麼要跳脫?是得因為 Shell 會把 ;
當成指令結束,可是這個 ;
是要給 find 指令的參數,所以當然要用 \
跳脫囉。
今天跨年,就簡單介紹 find
指令到這吧。
我是誰?
我是 dd-han ,可以叫我呆翰,是國立臺中科技大學的延畢生 與 創科資訊的時習生。